/**
 * 内容推荐管理
 * 
 * @param $
 */
(function($) {

	var pageObject = {
		// 用于识别当前选中行
		data_index : "",

		init : function() {
			// 获取推荐位列表
			this._get_block_select();
			// 获取省份选择
			this._get_province_select();
			// 获取城市选择
			this._get_city_select();
			// 时间插件初始化
			this._init_input_date();
			// 添加搜索事件
			this._reg_search_btn();
			// 初始化添加按钮
			this._init_add_btn_event();
			// 删除提交按钮
			this._reg_delete_block_page_btn();
			// 初始化修改按钮
			this._reg_update_block_page_btn();
			// “提交按钮”
			this._reg_submit_btn();
			// 初始化表格
			this._init_table();
		},

		/** 获取推荐位列表 */
		_get_block_select : function() {
			$.ajax({
				type : "GET",
				cache : false,
				async : false,
				dataType : "json",
				url : "/manage/block/item/findBlock",
				success : function(data) {
					$("#pf-select-block").html("");
					if (data.isSuccess == true) {
						var classes = data.message;
						$("#pf-select-block-modal").append($("<option>").val("").text("请选择推荐位"));
						for ( var i in classes) {
							var blockClass = classes[i];
							var optionModal = $("<option>").val(blockClass.id).text(blockClass.title);
							$("#pf-select-block-modal").append(optionModal);
						}
					} else {
						alert(data.message);
					}
				}
			});
		},
		/** 获取省份列表 */
		_get_province_select : function() {
			$.ajax({
				type : "GET",
				cache : false,
				async : false,
				dataType : "json",
				url : "/manage/Ajax/findProvinceList",
				success : function(data) {
					$("#pf-select-province").html("");// 添加修改页使用
					$("#pf-select-province-select").html("");// 搜索页使用
					if (data.isSuccess == true) {
						var classes = data.message;
						// 添加省份
						$("#pf-select-province").append($("<option>").val("").text("请选择省份"));
						$("#pf-select-province").append($("<option>").val("-1").text("全国"));
						$("#pf-select-province-select").append($("<option>").val("").text("请选择省份"));
						$("#pf-select-province-select").append($("<option>").val("-1").text("全国"));
						for ( var i in classes) {
							var provinceClass = classes[i];
							var option = $("<option>").val(provinceClass.id).text(provinceClass.name);
							var optionSelect = $("<option>").val(provinceClass.id).text(provinceClass.name);
							$("#pf-select-province").append(option);
							$("#pf-select-province-select").append(optionSelect);
						}

					} else {
						alert(data.message);
					}
				}
			});
		},

		/** 城市选择事件 */
		_get_city_select : function() {
			$("#pf-select-province-select").change(function() {

				if ($("#pf-select-province-select").val() == "-1") {
					$("#pf-select-city-select").html("");
					$("#pf-select-city-select").append($("<option>").val("-1").text("全国"));
					return;
				}
				var obj = "";
				$.ajax({
					type : "GET",
					url : "/manage/Ajax/findCityList",
					data : "provinceId=" + $("#pf-select-province-select").val(),
					cache : false,
					dataType : "json",
					timeout : 100000,
					success : function(data) {
						if (data.isSuccess == true) {
							var results = data.message;
							$("#pf-select-city-select").html("");
							$("#pf-select-city-select").append($("<option>").val("").text("请选择城市"));
							for ( var i in results) {
								var cityClass = results[i];
								var option2 = $("<option>").val(cityClass.id).text(cityClass.name);
								$("#pf-select-city-select").append(option2);
							}
						}
					}
				});
			});
			$("#pf-select-province-select").change();

			$("#pf-select-province").change(function() {
				var obj = "";
				$.ajax({
					type : "GET",
					url : "/manage/Ajax/findCityList",
					data : "provinceId=" + $("#pf-select-province").val(),
					cache : false,
					dataType : "json",
					timeout : 100000,
					success : function(data) {
						if (data.isSuccess == true) {
							var results = data.message;
							$("#pf-select-city").html("");
							$("#pf-select-city").append($("<option>").val("").text("请选择城市"));
							if ($("#pf-select-province").val() == "-1") {
								$("#pf-select-city").html("");
								$("#pf-select-city").append($("<option>").val("-1").text("全国"));
								return;
							}
							for ( var i in results) {
								var cityClass = results[i];
								var option2 = $("<option>").val(cityClass.id).text(cityClass.name);
								$("#pf-select-city").append(option2);
							}
						}
					}
				});
			});
			$("#pf-select-province").change();
		},
		/** 时间插件初始化 */
		_init_input_date : function() {
			// 过期时间
			var validcheckout = $("#pf-block-item-valid-date").datepicker({
				format : 'yyyy-mm-dd'
			}).on('changeDate', function(ev) {
				validcheckout.hide();
			}).data('datepicker');
		},
		/** 添加搜索事件 */
		_reg_search_btn : function() {
			$("#pf-search-block-item-btn").click(function() {
				pageObject.searchBlockItem();
			});
			// 回车事件
			$("#pf-search-block-item-key").keydown(function(e) {
				if (e.keyCode == 13) {
					pageObject.searchBlockItem();
				}
			});
		},
		/** 搜索内容推荐 */
		searchBlockItem : function() {
			// 刷新
			var data = {
				queryParams : function(params) {
					params.searchText = $("#pf-search-block-item-key").val();
					params.blockId = $("#select-blockId").val();
					params.provinceId = $("#pf-select-province-select").val();
					params.cityId = $("#pf-select-city-select").val();
					return params;
				},
				pageNumber : 1
			};
			$("#pf-block-item-table").bootstrapTable('refresh', data);
		},

		/** 初始化添加按钮 */
		_init_add_btn_event : function() {

			// 注册选择户型图按钮
			$("#blockItemPicInput").uploadPreview({
				width : 100,
				height : 100,
				imgPreview : "#blockItemPicImg",
				imgType : [ "bmp", "gif", "png", "jpg" ],
				callback : function() {
					// alert("成功");
					return false;
				}
			});
			$("#pf-add-block-item-btn").click(function() {
				// 重置form
				$("#pf-block-item-save-form").resetForm();
				var selectBlockId = $("#select-blockId").val();
				//$("#pf-select-block-modal").val(selectBlockId);
				$("#blockId").val(selectBlockId);

				$("#pf-select-city").html("");
				$("#pf-select-city").append($("<option>").val("").text("请选择城市"));
				$("#pf-select-province option[value='']").attr("selected", true);
				pageObject._get_province_select();
				$("#blockItemPicImg").attr("src", "");
				$("#id").val(null);
				$("#pf-modal-title").html("添加内容推荐");
				$("#pf-add-block-item-modal").modal("show");
			});

		},

		/** 删除按钮事件 */
		_reg_delete_block_page_btn : function() {
			$(document).on("click", ".pf-delete-block-item-btn", function() {
				var $tr = $(this).closest("tr");
				layer.msg('确定删除标题为：' + $tr.data("data").title + "的内容推荐吗？", {
					time : 0, // 20s后自动关闭
					icon : 3,
					shade : 0.3,
					btn : [ '确定', '取消' ],
					yes : function(index) {
						layer.close(index);
						var index = layer.msg('正在处理，请稍候。。。', {
							icon : 16,
							shade : 0.3
						});
						$.ajax({
							type : "GET",
							cache : false,
							data : {
								id : $tr.data("data").id,
								title : $tr.data("data").title
							},
							dataType : "json",
							url : "/manage/block/item/delete",
							success : function(data) {
								// 关闭加载框
								layer.close(index);
								if (data != undefined && data.isSuccess == true) {
									// 刷新
									$("#pf-block-item-table").bootstrapTable("refresh");
								} else {
									layer.msg(data.message, {
										icon : 2,
										shade : 0.3,
										btn : [ '确定' ]
									});
								}
							}
						});

					}
				});
			});
		},

		/** 修改按钮 */
		_reg_update_block_page_btn : function() {
			$(document).on("click", ".pf-update-block-item-btn", function() {
				// 重置form
				$("#pf-block-item-save-form").resetForm();
				var $tr = $(this).closest("tr");
				var data = $tr.data("data");
				// 设置数据
				FormUtils.fill_form($("#pf-block-item-save-form"), data);
				// 图片
				if (data.photo != undefined && data.photo != null && data.photo.length > 0) {
					$("#blockItemPicImg").attr("src", uploadImageBase + "/" + data.photo);
				} else {
					$("#blockItemPicImg").attr("src", "");
				}
				// 排序
				// $("#pf-block-item-save-form input[name='orderBy']");

				// 省份
				$("#pf-select-province").val(data.provinceId);
				// 城市
				$.ajax({
					type : "GET",
					url : "/manage/Ajax/findCityListByCity",
					data : "cityId=" + data.cityId,
					cache : false,
					dataType : "json",
					timeout : 100000,
					success : function(dataJson) {
						if (dataJson.isSuccess == true) {
							var results = dataJson.message;
							$("#pf-select-city").html("");
							$("#pf-select-city").append($("<option>").val("").text("请选择城市"));
							for ( var i in results) {
								var cityClass = results[i];
								var optionCity = $("<option>").val(cityClass.id).text(cityClass.name);
								$("#pf-select-city").append(optionCity);
							}
							$("#pf-select-city").val(data.cityId);
						}
					}
				});
				// 显示弹窗
				$("#pf-modal-title").html("修改内容推荐");
				$("#pf-add-block-item-modal").modal("show");

			});
		},

		/** “提交按钮” */
		_reg_submit_btn : function() {
			$("#pf-submit-block-item").click(function() {
				if (pageObject._validate_form_field()) {
					$("#pf-block-item-save-form").ajaxSubmit({
						dataType : "json",
						iframe : true,
						success : function(data) {
							if (data != undefined && data.isSuccess == true) {
								// 关闭 添加 用户的 form窗口
								$("#pf-add-block-item-modal").modal("hide");
								// 刷新
								$("#pf-block-item-table").bootstrapTable("refresh");
							} else {
								layer.msg(data.message, {
									icon : 2,
									shade : 0.3,
									btn : [ '确定' ]
								});
							}
						}
					});
				}
			});
		},

		/** 提交验证 */
		_validate_form_field : function() {

			if ($("#pf-block-item-save-form input[name='link']").val() == "" && $("#pf-block-item-save-form input[name='itemId']").val() == "") {
				layer.msg("itemId和链接不能同时为空", {
					time : 0,
					icon : 2,
					shade : 0.3,
					btn : [ '确定' ]
				});
				return false;
			} else if ($("#pf-block-item-save-form input[name='orderBy']").val() == "") {
				layer.msg("排序不能为空", {
					time : 0,
					icon : 2,
					shade : 0.3,
					btn : [ '确定' ]
				});
				return false;
			} else if (isNaN($("#pf-block-item-save-form input[name='orderBy']").val())) {
				layer.msg("排序必须为数字", {
					time : 0,
					icon : 2,
					shade : 0.3,
					btn : [ '确定' ]
				});
				return false;
			} else {
				return true;
			}
		},

		/** 初始化分类表格 */
		_init_table : function() {
			$("#pf-block-item-table")
					.bootstrapTable(
							{
								method : 'get',
								url : "/manage/block/item/list",
								queryParams : function(params) {
									return params;
								},
								cache : false,
								// height : 400,
								sidePagination : 'server', // client or server
								queryParamsType : 'pageSize',

								// search : true,
								striped : true,
								pagination : true,
								pageSize : 10,
								pageList : [ 10, 20, 50, 100, 200 ],
								paginationDetail : true,
								paginationHAlign : 'right', // right, left
								showColumns : true,
								showRefresh : true,
								minimumCountColumns : 2,
								checkboxHeader : false,
								clickToSelect : true,
								columns : [
										{
											field : 'id',
											title : 'id',
											align : 'left',
											valign : 'middle',
											visible : true,
											sortable : true
										},
										{
											field : 'blockName',
											title : '推荐位名称',
											align : 'left',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												return "<span>" + row.blockName + "</span>";
											}
										},
										{
											field : 'title',
											title : '标题',
											align : 'left',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												return "<span>" + row.title + "</span>";
											}
										},
										{
											field : 'cityName',
											title : '城市',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row) {
												if (row.cityName == null) {
													return "全国";
												} else {
													return value;
												}
											}
										},
										{
											field : 'itemId',
											title : '原itemId',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : true,
										},
										{
											field : 'orderBy',
											title : '排序',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : true,
										},
										{
											field : 'expireTimeString',
											title : '过期时间',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												if (row.expireTimeString != null) {
													return row.expireTimeString;
												} else {
													return "永不过期"
												}
											}
										},
										{
											field : 'createTime',
											title : '创建时间',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : true,
											formatter : function(value, row) {
												if (row.createTime == null || row.createTime == "") {
													// 时间戳转Date 格式化
													var dateline = new Date();
													var stime = row.dateline;
													dateline.setTime(stime * 1000);
													return dateline.format('yyyy-MM-dd hh:mm:ss');
												} else {
													return row.createTime;
												}
											}
										},
										{
											field : 'option',
											title : '操作',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												return ' <button type="button" class="btn btn-danger btn-xs pf-delete-block-item-btn"><i class="glyphicon glyphicon-trash"></i>删除</button>&nbsp;'
														+ '<button type="button" class="btn btn-success btn-xs pf-update-block-item-btn"><i class="glyphicon glyphicon-pencil"></i>修改</button>&nbsp;';
											}
										} ]
							});
		},
	}
	pageObject.init();

	Date.prototype.format = function(format) {
		var date = {
			"M+" : this.getMonth() + 1,
			"d+" : this.getDate(),
			"h+" : this.getHours(),
			"m+" : this.getMinutes(),
			"s+" : this.getSeconds(),
			"q+" : Math.floor((this.getMonth() + 3) / 3),
			"S+" : this.getMilliseconds()
		};
		if (/(y+)/i.test(format)) {
			format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
		}
		for ( var k in date) {
			if (new RegExp("(" + k + ")").test(format)) {
				format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
			}
		}
		return format;
	}
})(jQuery);